package com.mvvm.base.util

import android.graphics.Color
import android.os.CountDownTimer
import android.widget.TextView

/**
 * author：李帅华
 * email：850716183@qq.com
 * time: 2018/4/8 17:10:13
 */
class CountDownTimerUtils(
    private val mTextView: TextView,
    millisInFuture: Long,
    countDownInterval: Long
) : CountDownTimer(millisInFuture, countDownInterval) {
    override fun onTick(millisUntilFinished: Long) { //该方法在倒计时时调用
        mTextView.isEnabled = false //设置不可点击
        mTextView.setTextColor(Color.parseColor("#295acc"))
        mTextView.text = (millisUntilFinished / 1000).toString() + "s" + "后重新获取" //设置倒计时时间

        //需求不需要改变颜色
//        mTextView.setBackgroundResource(R.drawable.bg_identify_code_press); //设置按钮为灰色，这时是不能点击的
        //如果想给按钮上的字设置颜色可以进行以下操作：
//        SpannableString spannableString = new SpannableString(mTextView.getText().toString());  //获取按钮上的文字
//        ForegroundColorSpan span = new ForegroundColorSpan(Color.RED);//设置文本颜色
//        /**
//         * public void setSpan(Object what, int start, int end, int flags) {
//         * 主要是start跟end，start是起始位置,无论中英文，都算一个。
//         * 从0开始计算起。end是结束位置，所以处理的文字，包含开始位置，但不包含结束位置。
//         */
//        spannableString.setSpan(span, 0, 2, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);//将倒计时的时间设置为红色
//        mTextView.setText(spannableString);
    }

    override fun onFinish() { //计时结束之后实现这个方法
        mTextView.text = "重新获取"
        mTextView.setTextColor(Color.parseColor("#295acc"))
        mTextView.isEnabled = true //重新获得点击
        //        mTextView.setBackgroundResource(R.drawable.bg_identify_code_normal);//还原背景色
    }

}